home *** CD-ROM | disk | FTP | other *** search
- /* GadTools layout toolkit
- **
- ** Copyright © 1993-1995 by Olaf `Olsen' Barthel
- ** Freely distributable.
- */
-
- #include "gtlayout_global.h"
-
- ULONG __regargs
- LTP_ImageClassDraw(struct Image *image,struct impDraw *drawMsg,ImageInfo *imageInfo)
- {
- LTP_DrawBox(drawMsg -> imp_RPort,drawMsg -> imp_DrInfo,image -> LeftEdge + drawMsg -> imp_Offset . X,image -> TopEdge + drawMsg -> imp_Offset . Y,image -> Width,image -> Height,drawMsg -> imp_State == IDS_SELECTED,drawMsg -> imp_State == IDS_DISABLED,imageInfo);
-
- return(TRUE);
- }
-
-
- /*****************************************************************************/
-
-
- ULONG __regargs
- LTP_ImageClassErase(struct Image *image,struct impErase *eraseMsg)
- {
- LONG left;
- LONG top;
-
- left = eraseMsg -> imp_Offset . X + image -> LeftEdge;
- top = eraseMsg -> imp_Offset . Y + image -> TopEdge;
-
- EraseRect(eraseMsg -> imp_RPort,left,top,left + image -> Width - 1,top + image -> Height - 1);
-
- return(TRUE);
- }
-
-
- /*****************************************************************************/
-
- ULONG __regargs
- LTP_ImageClassNew(struct IClass *class,Object *object,struct opSet *SetMethod)
- {
- struct TagItem *Item;
-
- if(Item = FindTagItem(IIA_ImageType,SetMethod -> ops_AttrList))
- {
- struct Image *NewImage;
-
- if(NewImage = (struct Image *)DoSuperMethodA(class,object,(Msg)SetMethod))
- {
- struct ImageInfo *MoreInfo = INST_DATA(class,NewImage);
- struct TagItem *List = SetMethod -> ops_AttrList;
-
- memset(MoreInfo,0,sizeof(struct ImageInfo));
-
- MoreInfo -> ImageType = Item -> ti_Data;
-
- while(Item = NextTagItem(&List))
- {
- switch(Item -> ti_Tag)
- {
- case IIA_GlyphWidth:
-
- MoreInfo -> GlyphWidth = Item -> ti_Data;
- break;
-
- case IIA_GlyphHeight:
-
- MoreInfo -> GlyphHeight = Item -> ti_Data;
- break;
-
- case IIA_Lines:
-
- MoreInfo -> Lines = (STRPTR *)Item -> ti_Data;
- break;
-
- case IIA_LineCount:
-
- MoreInfo -> LineCount = Item -> ti_Data;
- break;
-
- case IIA_KeyStroke:
-
- MoreInfo -> KeyStroke = (STRPTR)Item -> ti_Data;
- break;
-
- case IIA_Emboss:
-
- MoreInfo -> Emboss = Item -> ti_Data;
- break;
-
- case IIA_Label:
-
- MoreInfo -> Label = (STRPTR)Item -> ti_Data;
- break;
- }
- }
-
- return((ULONG)NewImage);
- }
- }
-
- return(NULL);
- }
-
- ULONG __regargs
- LTP_ImageClassGet(Class *class,Object *object,struct opGet *GetMsg)
- {
- if(GetMsg -> opg_AttrID == IA_SupportsDisable)
- {
- *GetMsg -> opg_Storage = TRUE;
-
- return(TRUE);
- }
- else
- return(DoSuperMethodA(class,object,GetMsg));
- }
-
- /*****************************************************************************/
-
-
- ULONG __saveds __asm
- LTP_ImageDispatch(register __a0 struct IClass *class,register __a2 Object *object,register __a1 Msg msg)
- {
- switch(msg -> MethodID)
- {
- case IM_ERASE:
-
- return(LTP_ImageClassErase((struct Image *)object,(struct impErase *)msg));
-
- case IM_DRAW:
-
- return(LTP_ImageClassDraw((struct Image *)object,(struct impDraw *)msg,(ImageInfo *)INST_DATA(class,object)));
-
- case OM_NEW:
-
- return(LTP_ImageClassNew(class,object,(struct opSet *)msg));
-
- case OM_GET:
-
- return(LTP_ImageClassGet(class,object,(struct opGet *)msg));
-
- default:
-
- return(DoSuperMethodA(class,object,msg));
- }
- }
-